<?php

class Kd_Data_Table_Column_Array extends Kd_Data_Table_Column_Base {

    private $_separator = ',';

    public function __construct() {
        parent::__construct();
        $this->setDefaultValue(array());
    }
    
    public function getSeparator(){
        return $this->_separator;
    }
    public function setSeparator($value){
        $this->_separator = $value;
        return $this;
    }

    public function convertToDb($value) {
        if(is_null($value)){
            return NULL;
        }
        if(empty($value)){
            return NULL;
        }
        if(is_array($value)){
            return implode(',', $value);
        }
        return $value;
    }

    public function convertFromDb($value){
        if(empty($value)){
            return $this->isDefaultSetted()?
                    $this->getDefaultValue():
                    array();
        }
        return explode(',', $value);
    }

    public function validate($value) {
        return true;
    }

    public function getColumnType() {
        return 'array';
    }

    public function getParameterName() {
        return ':' . $this->getColumnName() . ':s';
    }

}